import * as api from '../../api/head';
import { Dispatch, AnyAction } from 'redux';
// import * as actionTypes from '../../types/action';

// interface HeadAction {
//     type: 'UPDATE' | 'ERROR';
//     value: HeadDataItem[];
// }

// 定义页面传过来的参数数据类型
// interface HeadParams {
//     msg: string;
// }

// redux-thunk
export function getHeadAction(params) {
    // 返回一个action函数 留给页面调用
    return function (dispatch) {
        // 返回Promise让中间件处理，我们不用管
        // 在这里发请求 并触发dispatch(action) 注意这里的action就是用来告知reducer如何修改state的
        return api.getHeadData(params.msg)
            // 请求成功
            .then(res => dispatch({
                type: 'UPDATE',
                value: res.data.result,
            }))
                // 请求失败
                .catch(err => dispatch({
                    type: 'ERROR',
                }));
    }
}
